/**
 * 1. app端给后端传: 金额total_fee, 32 位的商户订单号out_trade_no, 支付成功后的回调地址notify_url 这最基本的3个参数
 * 2. 后端通过微信的统一下单接口https://api.mch.weixin.qq.com/pay/unifiedorder生成一些参数，在返回给app端
 * 3. app根据这些参数再加上微信授权， 调起微信支付， 支付成功后返回到商家app
 * 4. 微信后台自动检测是否支出成功，成功后调用app传给微信后端的回调地址notify_url接口，app后端在回调地址的接口中处理什么数据库改写操作，发消息
 */
const koaRedis = require('koa-redis');
// 连接redis-cli客户端
const Store = new koaRedis().client;
// 变量库
const Variable = require('./variable');
/**
 * 获取token
 * @return {promise} res 值为token
 */
const getToken = async () => {
    let res = null;

    // 首先读取redis，是否存在token
    try {
        res = await Store.get('token');

        // 若不存在，则调用saveToken()获取
        if (res == null) {
            // console.log('若不存在，则调用saveToken()获取！');
            return saveToken();
        } else {
            // console.log('存在token，直接返回！');
            return res;
        }
    } catch (err) {
        console.log('err', err);
    }
};

/**
 * 从服务端获取token，并保存在redis中
 * @return { promise } 值为token
 */
const saveToken = () => {
    return new Promise((resolve, reject) => {
        let reqUrl = Variable.getToken_url;
        console.log('reqUrl', reqUrl);
    });
};

module.exports = {
    getToken,
    saveToken
};
